package com.ny.mapper;

import com.ny.entity.Device;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;

import java.util.Date;
import java.util.List;
import java.util.Optional;

public interface DeviceMapper extends MongoRepository<Device, Integer> {
    // 方法名解析：根据deviceName查询
    List<Device> findAll();
    List<Device> findByDeviceName(String deviceName);

    List<Device> findByStatus(Integer status);

    // 根据时间段和状态查询（自定义查询）
    @Query("{ 'created_time': { $gte: ?0, $lte: ?1 }, 'status': ?2 }")
    List<Device> findByCreatedTimeBetweenAndStatus(Date startTime, Date endTime, Integer status);
    // 根据设备名称模糊查询
    @Query("{ 'device_name': ?0 }")
    List<Device> findByDeviceNameCustom(String deviceName);

    // 方法3：使用正则表达式进行模糊匹配
    @Query("{ 'device_name': { $regex: ?0, $options: 'i' } }")
    List<Device> findByDeviceNameRegex(String deviceName);

}
